#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
#include<time.h>
typedef int HPDataType;

typedef struct Heap
{
	HPDataType* a;
	size_t size;
	size_t Capicity;
}HP;

void HeapInit(HP* ptr);
void HeapPush(HP* ptr, HPDataType x);
void HeapPrint(HP* ptr);
void AdjustUp(HPDataType* a, size_t child);
void HeapSize(HP* ptr);
bool HpEmpty( HP * ptr);
void Swap(HPDataType* p1, HPDataType* p2);
void AdjustDown(int * a,int  size, int  parent);
void HeapDestroy(HP* ptr);
HPDataType HeapTop(HP* ptr);
void HeapPop(HP* ptr);